/*
 * Levels.h
 *
 *  Created on: Mar 14, 2013
 *      Author: nick
 */

#ifndef LEVELS_H_
#define LEVELS_H_

#include <ostream>

namespace Logging {
	enum Level {
		TRACE, DEBUG, INFO, WARN, ERROR, FATAL
	};

	//TODO: generate this automatically from enum
	static const char * const LEVELS_AS_STRING[] = {"TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL"};

	//TODO: automatically calculate max level width
	static const int MAX_LEVEL_WIDTH = 10;

	std::ostream & operator<<(std::ostream & out, const Level level);
}

#endif /* LEVELS_H_ */
